import edge_tts
import asyncio
import pygame
import os

# 语音合成函数
async def generate_audio(text, output_file="tts_output.mp3"):
    # zh-CN-XiaoxiaoNeural 是非常自然的中文女声
    # zh-CN-YunxiNeural 是男声
    # "en-US-JennyNeural"：美式英语，女声（清晰、自然）
    # "en-US-GuyNeural"：美式英语，男声
    # "en-GB-SoniaNeural"：英式英语，女声
    # "en-AU-NatashaNeural"：澳式英语，女声
    voice = "zh-CN-XiaoxiaoNeural"
    communicate = edge_tts.Communicate(text, voice)
    await communicate.save(output_file)

def play_audio(file_path):
    pygame.mixer.init()
    pygame.mixer.music.load(file_path)
    pygame.mixer.music.play()
    while pygame.mixer.music.get_busy():
        pygame.time.Clock().tick(10)
    pygame.mixer.quit()
    # 播放完删除临时文件
    os.remove(file_path)

def robot_speak(text):
    asyncio.run(generate_audio(text))
    play_audio("tts_output.mp3")

if __name__ == "__main__":
    robot_speak("师兄你好，我现在使用的是微软的神经网络语音，听起来是不是很自然？")